package com.ticket.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ticket.common.annotation.Excel;
import com.ticket.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 演出对象 t_yanchu
 * 
 * @author gjchen
 * @date 2023-04-04
 */
public class Yanchu extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 演出日期 */
    @Excel(name = "演出日期")
    private String dateYanchu;
    private String endYanchu;
    private String endTime;

    /** 演出时间 */
    @Excel(name = "演出时间")
    private String timeYanchu;

    /** 演出名称 */
    @Excel(name = "演出名称")
    private String nameYanchu;

    /** 演出内容 */
    @Excel(name = "演出内容")
    private String contentYanchu;

    /** 演出年 */
    private String yearYanchu;

    /** 演出月 */
    private Integer monthYanchu;

    /** 状态 0待发布 1已发布 */
    private Integer state;

    /** 创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 更新日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateDate;

    /** 所在城市 */
    @Excel(name = "演出地点")
    private String city;

    /** 演出场所 */
    @Excel(name = "演出场所")
    private String addressYanchu;

    /** 销售渠道 */
    @Excel(name = "销售渠道")
    private String xiaoshouYanchu;

    /** 演出性质 */
    private Long xingzhiYanchu;

    /** 演出类别 */
    private Long leibieYanchu;

    /** 演出场次 */
    private BigDecimal changciYanchu;

    /** 演出人数 */
    private Long renshuYanchu;

    /** 演出时长 */
    @Excel(name = "演出时长")
    private Long shichangYanchu;

    /** 场所座位数 */
    private Long zuoweiYanchu;

    /** 观众人数 */
    private Long shouruYanchu;

    /** 购票渠道（线上数） */
    private Long xianshangYanchu;

    /** 购票渠道（线下数） */
    private Long xianxiaYanchu;

    /** 社会效益、社会影响、媒体报道、专业剧评 */
    private String jupingYanchu;

    /** 观众满意度 */
//    @Excel(name = "观众满意度")
    private String manyiduYanchu;

    /** 合作方复采意向 */
    private String fucaiYanchu;

    /** 单位采购 */
    private BigDecimal caigouDanwei;

    /** 冠名费、赞助等 */
    private Long guanming;

    /** 其他收入 */
    private BigDecimal shouruQita;

    /** 采购剧目费用 */
    private BigDecimal caigouFeiyong;

    /** 食宿行费用 */
    private BigDecimal shisuFeiyong;

    /** 运输费用 */
    private BigDecimal yunshuFeiyong;

    /** 宣传推广费 */
    private BigDecimal xuanchuanFeiyong;

    /** 场地租赁费 */
    private BigDecimal changdiFeiyong;

    /** 器材租赁费 */
    private BigDecimal qicaiFeiyong;

    /** 服化道租赁费 */
    private BigDecimal fuhuaFeiyong;

    /** 全员营销奖励 */
    private BigDecimal quanyuanFeiyong;

    /** ˰税费 */
    private BigDecimal shuiFeiyong;

    /** 其他支出 */
    private BigDecimal qitaFeiyong;

    /** 部门编码 */
//    @Excel(name = "部门编码")
    private Long deptId;

    /** $column.columnComment */
    private BigDecimal jinePiaowu;

    /** 分成比例 */
    private Integer shuliangPiaowu;

    /** 衍生品收入 */
    private BigDecimal shouruYansheng;

    /** $column.columnComment */
    private BigDecimal chengbenLaowu;

    /** 补贴人数 */
    private Long renshuLaowu;

    private BigDecimal biliPiaowu;

    private String demo;

    private String serialNo;

    private String provinceCode;
    private String cityCode;
    private String areaCode;
    private String townCode;


    @ApiModelProperty(value = "0:省内;1:省外")
    private Integer isPro;
    @ApiModelProperty(value = "0:非驻场;1:驻场")
    private Integer isRes;

    @Transient
    @Excel(name = "收入")
    private BigDecimal shouruTotal;

    @Transient
    private BigDecimal chengbenTotal;

    @Transient
    @Excel(name = "利润")
    private BigDecimal lirun;

    @Transient
    private Integer changciJihua;

    @Transient
    @Excel(name = "所属部门")
    private String deptName;

    @Transient
    private List<YanchuAttach> yanchuAttachs;

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getTownCode() {
        return townCode;
    }

    public void setTownCode(String townCode) {
        this.townCode = townCode;
    }

    public List<YanchuAttach> getYanchuAttachs() {
        return yanchuAttachs;
    }

    public void setYanchuAttachs(List<YanchuAttach> yanchuAttachs) {
        this.yanchuAttachs = yanchuAttachs;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public BigDecimal getChengbenTotal() {
        return chengbenTotal;
    }

    public void setChengbenTotal(BigDecimal chengbenTotal) {
        this.chengbenTotal = chengbenTotal;
    }

    public BigDecimal getShouruTotal() {
        return shouruTotal;
    }

    public void setShouruTotal(BigDecimal shouruTotal) {
        this.shouruTotal = shouruTotal;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setNameYanchu(String nameYanchu) 
    {
        this.nameYanchu = nameYanchu;
    }

    public String getNameYanchu() 
    {
        return nameYanchu;
    }
    public void setContentYanchu(String contentYanchu) 
    {
        this.contentYanchu = contentYanchu;
    }

    public String getContentYanchu() 
    {
        return contentYanchu;
    }
    public void setYearYanchu(String yearYanchu) 
    {
        this.yearYanchu = yearYanchu;
    }

    public String getYearYanchu() 
    {
        return yearYanchu;
    }
    public void setMonthYanchu(Integer monthYanchu) 
    {
        this.monthYanchu = monthYanchu;
    }

    public Integer getMonthYanchu() 
    {
        return monthYanchu;
    }
    public void setDateYanchu(String dateYanchu) 
    {
        this.dateYanchu = dateYanchu;
    }

    public String getDateYanchu() 
    {
        return dateYanchu;
    }
    public void setTimeYanchu(String timeYanchu) 
    {
        this.timeYanchu = timeYanchu;
    }

    public String getTimeYanchu() 
    {
        return timeYanchu;
    }
    public void setState(Integer state) 
    {
        this.state = state;
    }

    public Integer getState() 
    {
        return state;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setAddressYanchu(String addressYanchu) 
    {
        this.addressYanchu = addressYanchu;
    }

    public String getAddressYanchu() 
    {
        return addressYanchu;
    }
    public void setXiaoshouYanchu(String xiaoshouYanchu)
    {
        this.xiaoshouYanchu = xiaoshouYanchu;
    }

    public String getXiaoshouYanchu()
    {
        return xiaoshouYanchu;
    }
    public void setXingzhiYanchu(Long xingzhiYanchu) 
    {
        this.xingzhiYanchu = xingzhiYanchu;
    }

    public Long getXingzhiYanchu() 
    {
        return xingzhiYanchu;
    }
    public void setLeibieYanchu(Long leibieYanchu) 
    {
        this.leibieYanchu = leibieYanchu;
    }

    public Long getLeibieYanchu() 
    {
        return leibieYanchu;
    }
    public void setChangciYanchu(BigDecimal changciYanchu)
    {
        this.changciYanchu = changciYanchu;
    }

    public BigDecimal getChangciYanchu()
    {
        return changciYanchu;
    }
    public void setRenshuYanchu(Long renshuYanchu)
    {
        this.renshuYanchu = renshuYanchu;
    }

    public Long getRenshuYanchu() 
    {
        return renshuYanchu;
    }
    public void setShichangYanchu(Long shichangYanchu) 
    {
        this.shichangYanchu = shichangYanchu;
    }

    public Long getShichangYanchu() 
    {
        return shichangYanchu;
    }
    public void setZuoweiYanchu(Long zuoweiYanchu) 
    {
        this.zuoweiYanchu = zuoweiYanchu;
    }

    public Long getZuoweiYanchu() 
    {
        return zuoweiYanchu;
    }
    public void setShouruYanchu(Long shouruYanchu) 
    {
        this.shouruYanchu = shouruYanchu;
    }

    public Long getShouruYanchu() 
    {
        return shouruYanchu;
    }
    public void setXianshangYanchu(Long xianshangYanchu) 
    {
        this.xianshangYanchu = xianshangYanchu;
    }

    public Long getXianshangYanchu() 
    {
        return xianshangYanchu;
    }
    public void setXianxiaYanchu(Long xianxiaYanchu) 
    {
        this.xianxiaYanchu = xianxiaYanchu;
    }

    public Long getXianxiaYanchu() 
    {
        return xianxiaYanchu;
    }
    public void setJupingYanchu(String jupingYanchu) 
    {
        this.jupingYanchu = jupingYanchu;
    }

    public String getJupingYanchu() 
    {
        return jupingYanchu;
    }
    public void setManyiduYanchu(String manyiduYanchu) 
    {
        this.manyiduYanchu = manyiduYanchu;
    }

    public String getManyiduYanchu() 
    {
        return manyiduYanchu;
    }
    public void setFucaiYanchu(String fucaiYanchu) 
    {
        this.fucaiYanchu = fucaiYanchu;
    }

    public String getFucaiYanchu() 
    {
        return fucaiYanchu;
    }
    public void setCaigouDanwei(BigDecimal caigouDanwei)
    {
        this.caigouDanwei = caigouDanwei;
    }

    public BigDecimal getCaigouDanwei()
    {
        return caigouDanwei;
    }
    public void setGuanming(Long guanming) 
    {
        this.guanming = guanming;
    }

    public Long getGuanming() 
    {
        return guanming;
    }
    public void setShouruQita(BigDecimal shouruQita) 
    {
        this.shouruQita = shouruQita;
    }

    public BigDecimal getShouruQita() 
    {
        return shouruQita;
    }
    public void setCaigouFeiyong(BigDecimal caigouFeiyong) 
    {
        this.caigouFeiyong = caigouFeiyong;
    }

    public BigDecimal getCaigouFeiyong() 
    {
        return caigouFeiyong;
    }
    public void setShisuFeiyong(BigDecimal shisuFeiyong) 
    {
        this.shisuFeiyong = shisuFeiyong;
    }

    public BigDecimal getShisuFeiyong() 
    {
        return shisuFeiyong;
    }
    public void setYunshuFeiyong(BigDecimal yunshuFeiyong) 
    {
        this.yunshuFeiyong = yunshuFeiyong;
    }

    public BigDecimal getYunshuFeiyong() 
    {
        return yunshuFeiyong;
    }
    public void setXuanchuanFeiyong(BigDecimal xuanchuanFeiyong) 
    {
        this.xuanchuanFeiyong = xuanchuanFeiyong;
    }

    public BigDecimal getXuanchuanFeiyong() 
    {
        return xuanchuanFeiyong;
    }
    public void setChangdiFeiyong(BigDecimal changdiFeiyong) 
    {
        this.changdiFeiyong = changdiFeiyong;
    }

    public BigDecimal getChangdiFeiyong() 
    {
        return changdiFeiyong;
    }
    public void setQicaiFeiyong(BigDecimal qicaiFeiyong) 
    {
        this.qicaiFeiyong = qicaiFeiyong;
    }

    public BigDecimal getQicaiFeiyong() 
    {
        return qicaiFeiyong;
    }
    public void setFuhuaFeiyong(BigDecimal fuhuaFeiyong) 
    {
        this.fuhuaFeiyong = fuhuaFeiyong;
    }

    public BigDecimal getFuhuaFeiyong() 
    {
        return fuhuaFeiyong;
    }
    public void setQuanyuanFeiyong(BigDecimal quanyuanFeiyong) 
    {
        this.quanyuanFeiyong = quanyuanFeiyong;
    }

    public BigDecimal getQuanyuanFeiyong() 
    {
        return quanyuanFeiyong;
    }
    public void setShuiFeiyong(BigDecimal shuiFeiyong) 
    {
        this.shuiFeiyong = shuiFeiyong;
    }

    public BigDecimal getShuiFeiyong() 
    {
        return shuiFeiyong;
    }
    public void setQitaFeiyong(BigDecimal qitaFeiyong) 
    {
        this.qitaFeiyong = qitaFeiyong;
    }

    public BigDecimal getQitaFeiyong() 
    {
        return qitaFeiyong;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setJinePiaowu(BigDecimal jinePiaowu) 
    {
        this.jinePiaowu = jinePiaowu;
    }

    public BigDecimal getJinePiaowu() 
    {
        return jinePiaowu;
    }
    public void setShuliangPiaowu(Integer shuliangPiaowu)
    {
        this.shuliangPiaowu = shuliangPiaowu;
    }

    public Integer getShuliangPiaowu()
    {
        return shuliangPiaowu;
    }
    public void setShouruYansheng(BigDecimal shouruYansheng) 
    {
        this.shouruYansheng = shouruYansheng;
    }

    public BigDecimal getShouruYansheng() 
    {
        return shouruYansheng;
    }
    public void setChengbenLaowu(BigDecimal chengbenLaowu) 
    {
        this.chengbenLaowu = chengbenLaowu;
    }

    public BigDecimal getChengbenLaowu() 
    {
        return chengbenLaowu;
    }
    public void setRenshuLaowu(Long renshuLaowu) 
    {
        this.renshuLaowu = renshuLaowu;
    }

    public Long getRenshuLaowu() 
    {
        return renshuLaowu;
    }

    public Integer getChangciJihua() {
        return changciJihua;
    }

    public void setChangciJihua(Integer changciJihua) {
        this.changciJihua = changciJihua;
    }

    public BigDecimal getBiliPiaowu() {
        return biliPiaowu;
    }

    public void setBiliPiaowu(BigDecimal biliPiaowu) {
        this.biliPiaowu = biliPiaowu;
    }

    public String getEndYanchu() {
        return endYanchu;
    }

    public void setEndYanchu(String endYanchu) {
        this.endYanchu = endYanchu;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getDemo() {
        return demo;
    }

    public void setDemo(String demo) {
        this.demo = demo;
    }

    public BigDecimal getLirun() {
        return lirun;
    }

    public void setLirun(BigDecimal lirun) {
        this.lirun = lirun;
    }

    public String getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }

    public Integer getIsPro() {
        return isPro;
    }

    public void setIsPro(Integer isPro) {
        this.isPro = isPro;
    }

    public Integer getIsRes() {
        return isRes;
    }

    public void setIsRes(Integer isRes) {
        this.isRes = isRes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("nameYanchu", getNameYanchu())
            .append("contentYanchu", getContentYanchu())
            .append("yearYanchu", getYearYanchu())
            .append("monthYanchu", getMonthYanchu())
            .append("dateYanchu", getDateYanchu())
            .append("timeYanchu", getTimeYanchu())
            .append("createBy", getCreateBy())
            .append("state", getState())
            .append("createDate", getCreateDate())
            .append("updateDate", getUpdateDate())
            .append("city", getCity())
            .append("addressYanchu", getAddressYanchu())
            .append("xiaoshouYanchu", getXiaoshouYanchu())
            .append("xingzhiYanchu", getXingzhiYanchu())
            .append("leibieYanchu", getLeibieYanchu())
            .append("changciYanchu", getChangciYanchu())
            .append("renshuYanchu", getRenshuYanchu())
            .append("shichangYanchu", getShichangYanchu())
            .append("zuoweiYanchu", getZuoweiYanchu())
            .append("shouruYanchu", getShouruYanchu())
            .append("xianshangYanchu", getXianshangYanchu())
            .append("xianxiaYanchu", getXianxiaYanchu())
            .append("jupingYanchu", getJupingYanchu())
            .append("manyiduYanchu", getManyiduYanchu())
            .append("fucaiYanchu", getFucaiYanchu())
            .append("caigouDanwei", getCaigouDanwei())
            .append("guanming", getGuanming())
            .append("shouruQita", getShouruQita())
            .append("caigouFeiyong", getCaigouFeiyong())
            .append("shisuFeiyong", getShisuFeiyong())
            .append("yunshuFeiyong", getYunshuFeiyong())
            .append("xuanchuanFeiyong", getXuanchuanFeiyong())
            .append("changdiFeiyong", getChangdiFeiyong())
            .append("qicaiFeiyong", getQicaiFeiyong())
            .append("fuhuaFeiyong", getFuhuaFeiyong())
            .append("quanyuanFeiyong", getQuanyuanFeiyong())
            .append("shuiFeiyong", getShuiFeiyong())
            .append("qitaFeiyong", getQitaFeiyong())
            .append("deptId", getDeptId())
            .append("jinePiaowu", getJinePiaowu())
            .append("shuliangPiaowu", getShuliangPiaowu())
            .append("shouruYansheng", getShouruYansheng())
            .append("chengbenLaowu", getChengbenLaowu())
            .append("renshuLaowu", getRenshuLaowu())
            .toString();
    }
}
